Skip to main content

Centos linux下通过yum安装svn及配置

--

Centos linux下通过yum安装svn及配置

  1. 环境 centos5.5

  2. 安装svn yum -y install subversion

  3. 配置

建立版本库目录 mkdir /www/svndata

svnserve -d -r /www/svndata

  1. 建立版本库

创建一个新的Subversion项目 svnadmin create /www/svndata/oplinux

配置允许用户rsync访问 cd /www/svndata/oplinux/conf

vi svnserve.conf anon-access=none auth-access=write password-db=passwd

注:修改的文件前面不能有空格,否则启动svn server出错

vi passwd [users] #<用户1> = <密码1> #<用户2> = <密码2> rsync=rsync

  1. 客户端连接 svn co svn://ip/oplinux 用户名密码:rsync

===========

  1. 实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中

    1)设置WEB服务器根目录为/www/webroot

    2)checkout一份SVN

svn co svn://localhost/oplinux /www/webroot

修改权限为WEB用户

chown -R apache:apache /www/webroot/oplinux

3) 建立同步脚本

cd /www/svndata/oplinux/hooks/

cp post-commit.tmpl post-commit

编辑post-commit,在文件最后添加以下内容

export LANG=en_US.UTF-8
SVN=/usr/bin/svn
WEB=/www/webroot/
$SVN update $WEB –username rsync –password rsync
chown -R apache:apache $WEB

增加脚本执行权限

chmod +x post-commit

安装svn服务器端

yum install subversion 从镜像下载安装svn服务器端 cd /usr/local/ //进入目录,准备创建svn目录 mkdir svn //创建一个svn目录 chmod -R 777 svn //修改目录权限为777 svnadmin create /usr/local/svn/sunny //创建一个svn版本仓库sunny(sunny可以随便起名字) cd sunny/conf //进入sunny版本仓库下的配置文件目录

下面要修改这个目录下的三个配置文件

  1. vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径 把
# anon-access = read
# auth-access = write
# password-db = passwd
# realm = sunny

这四行,前面的#号和空格去掉,变成

anon-access = none //改成none
auth-access = write
password-db = passwd
realm = sunny //改成自己的版本库

保存

  1. vi authz //文件,创建svn组和组用户的权限
[group]
sunny = gep,wce

//创建一个sunny的组,并制定两个用户gep和wce

[/] //制定根目录下的权限
@sunny = rw //sunny组用户权限为读写
* = r //其他用户只有读权限

保存退出

  1. vi passwd //创建或修改用户密码
[users]
gep = 123456 //用户名为gep的用户的密码为123456
wce = 123456 //。。。

保存退出
然后要设置自启动

vi /etc/rc.local

打开自启动文件 文件内容如下

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/usr/local/webserver/mysql/3306/mysql start
ulimit -SHn 51200
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx
svnserve -d -r /usr/local/svn/sunny
#/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock

svn命令:

lsof -i :3690 查看svn是否启动
ps aux |grep ‘svn’ 查找所有svn启动的进程
kill -9 2505 杀死2505这个查找到的svn进程
svnserve -d -r /usr/local/svn/sunny 启动svn(可以把这个放到/etc/local/rc.local文件中,实现开机自启动)

svn up //更新文件
#svn commit -m “注释” xxx.php //提交文件
svn ci -m’aaa’ test.php //提交文件

#svn add file //新建文件并添加到svn
svn add *.php //(添加当前目录下所有的php文件)
svn delete test.php //删除test.php
svn log test.php //查看test文件的log信息
svn cleanup //清理当前目录

svn co svn://172.19.5.12 ./ //检出一份版本库文件到当前目录

svn switch –relocate svn://192.168.1.253 svn://172.19.10.250 //重新定位SVN版本库地址

SVN版本库启动方式,现在SVN下面有 sunny、test 两个版本库

1:单版本库启动 svnserve -d -r /usr/local/svn/sunny
2:多版本库启动 svnserve -d -r /usr/local/svn

区别在于起动svn时候的命令中的启动参数-r指定的目录。

限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件

以配置 sunny 版本库为例

vi authz
[groups]
teacher = sunny,sunny1
[sunny:/] //指定版本库跟目录下的权限
@teacher = rw //teacher组用户权限为读写
* = r //其他用户只有读权限

保存退出

vi passwd 设置组中用户的账号和密码

[users]
sunny = 123456
sunny1 = 123456